package Demo04;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;

/**
 * @ClassName Input
 * @Description 上下文关键字：抽象数据类型/面程对象风格 --输入类
 * 从文件中读取数据并且将数据存于initStr集合中
 * @Author 李明忠
 * @Version 1.0
 */
@SuppressWarnings("all")
public class Input {
    private ArrayList<String> initStr;
    private String filePath;

    /********************构造函数***********************/
    //其他辅助类调用这个构造函数
    public Input() {
    }

    //需要用户调用这个构造器
    public Input(String filePath) {
        this.filePath = filePath;
    }

    public Input(ArrayList<String> initStr, String filePath) {
        this.initStr = initStr;
        this.filePath = filePath;
    }
    /******************** end ***********************/

    public void inputStr(){
        //使用文件路径创建文件管道
        //使用try()-catch语句可以使得文件自己关闭资源
        try (
                //创建文件缓冲字符输入流（提高效率）
                BufferedReader br = new BufferedReader(new FileReader(filePath));
        ){
            //业务逻辑

            //创建集合
            initStr = new ArrayList<>();
            //存入每一行
            String line;
            //读入文件并将其存入initStr集合
            while((line = br.readLine()) !=null){
                initStr.add(line);//添加没一行
            }

        } catch (Exception e){
            e.printStackTrace();
        }
    }

    /*******************get和set函数*******************/
    public ArrayList<String> getInitStr() {
        return initStr;
    }

    public void setInitStr(ArrayList<String> initStr) {
        this.initStr = initStr;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }
    /*******************  end  *******************/


}
